package day15;

// 暗处取一堆手套
// 如果该颜色 只有一边有则该颜色全部取出
// 否则：取左/右 sum-min+1

import static java.lang.Math.min;

public class Main2 {

    private static final int INT_MAX = Integer.MAX_VALUE;

    public int findMinimum(int n, int[] left, int[] right) {
        // write code here

        int left_sum=0,right_sum=0;
        int left_min=INT_MAX,right_min=INT_MAX;
        int sum=0;
        for(int i=0;i<n;i++) {
            if(0==left[i]*right[i]) {
                // 其中一种颜色至少有一只是没有的，那就全部取出
                sum=sum+left[i]+right[i];
            } else { // 该颜色左右手均存在
                left_sum+=left[i];
                if(left[i]<left_min) {
                    left_min = left[i];
                    // 记录左边最小值
                }
                right_sum+=right[i];
                if(right[i]<right_min) {
                    right_min = right[i];
                }
            }
        }
        return sum+min(left_sum-left_min+1,right_sum-right_min+1)+1;
        // 只有一只或者都没有全取 + 左右手条最小的取（取的是sum-min+1）：保证每一种都取到 +
        // 1（另一只手至少取一只才可以配对！
    }

}
